package com.iwhalecloud.bss.kite.cucc.service.attr.handler;

import com.iwhalecloud.bss.kite.common.constant.ServiceOfferConsts;
import com.iwhalecloud.bss.kite.common.util.KiteStringUtils;
import com.iwhalecloud.bss.kite.cucc.common.constant.LocalKeyConsts;
import com.iwhalecloud.bss.kite.cucc.common.constant.LocalServiceOfferConsts;
import com.iwhalecloud.bss.kite.manager.api.IOperateSceneInstService;
import com.iwhalecloud.bss.kite.manager.inst.KiteAttr;
import com.iwhalecloud.bss.kite.manager.inst.KiteAttrValue;
import com.iwhalecloud.bss.kite.manager.inst.KiteInst;
import com.iwhalecloud.bss.kite.service.attr.AttrData;
import com.iwhalecloud.bss.kite.service.attr.handler.AbstractAttrHandler;
import com.ztesoft.bss.common.util.ContextUtil;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * 互联网专线（全国）接入层级属性，吉林省，枚举值只保留【城域网汇聚层】、【域网接入层】，其他省份不变
 */
public class AccessLevelAttrHandler extends AbstractAttrHandler {

    @Autowired
    IOperateSceneInstService operateSceneInstService;

    @Override
    public void after(KiteAttr attr, KiteInst inst, AttrData data) {
        // 吉林 互联网专线全国：接入层级的枚举值只有：城域网汇聚层、域网接入层。
        String provinceCode = ContextUtil.getLoginInfo().getUserInfo().getPostProvinceNbr();
        if (LocalKeyConsts.PROVINCE_JILIN.equals(provinceCode)) {
            // 如果省份是吉林，接入层级属性的枚举值只有：城域网汇聚层、域网接入层。
            KiteAttr kiteAttr = inst.getAttr("2_0000074");
            List<KiteAttrValue> attrValues = kiteAttr.getAttrValues();
            int size = attrValues.size();
            if(attrValues != null && size>0) {
                //把原来的全部清除：删除一个，list会实时减少一个。
                for (int i=0;i<size;i++) {
                    attrValues.remove(0);
                }
                //加入请选择、城域网汇聚层、域网接入层。
                KiteAttrValue kiteAttrValue0 = new KiteAttrValue();
                kiteAttrValue0.setAttrValue("");
                kiteAttrValue0.setAttrValueName("--请选择--");
                kiteAttrValue0.setSortBy("0");
                attrValues.add(0, kiteAttrValue0);
                KiteAttrValue kiteAttrValue1 = new KiteAttrValue();
                kiteAttrValue1.setAttrValue("1_0000383");
                kiteAttrValue1.setAttrValueName("城域网汇聚层");
                kiteAttrValue1.setAttrId("20210313673");
                kiteAttrValue1.setAttrValueId("20210313974");
                kiteAttrValue1.setSortBy("1");
                attrValues.add(1, kiteAttrValue1);
                KiteAttrValue kiteAttrValue2 = new KiteAttrValue();
                kiteAttrValue2.setAttrValue("1_0000384");
                kiteAttrValue2.setAttrValueName("城域网接入层");
                kiteAttrValue2.setAttrId("20210313673");
                kiteAttrValue2.setAttrValueId("20210313975");
                kiteAttrValue2.setSortBy("2");
                attrValues.add(2, kiteAttrValue2);
            }
        }else if (LocalKeyConsts.PROVINCE_HEBEI.equals(provinceCode)){
            //河南 屏蔽枚举值：VIP专网，奥运专网、亦庄互联网
            attr.getAttrValues().removeIf(targetAttr -> KiteStringUtils.equalsAny(targetAttr.getAttrValue(), "1_0000131","1_0000386","1_0000387"));
            //默认“城域网接入层” 1208放开
            if ( KiteStringUtils.equalsAny(data.getServiceOfferId(), ServiceOfferConsts.SERVICE_OFFER_ORDER,
                LocalServiceOfferConsts.SERVICE_OFFER_RESOURCE_CHECK)) {
                attr.setDefaultValue("1_0000384");
            }
        }
        super.after(attr,inst,data);
    }
}
